package com.it.entity.aiClaimRegistration;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 理赔立案信息表（查勘后符合标准的立案记录）
 * </p>
 *
 * @author sunwz
 * @since 2025年09月20日
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName("ai_claim_registration")
public class AiClaimRegistration implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 立案唯一ID（编码规则：REG+日期+6位序列号）
     */
    @TableId(value = "registration_id", type = IdType.AUTO)
    private String registrationId;

    /**
     * 关联报案ID（关联报案表）
     */
    @TableField("report_id")
    private String reportId;

    /**
     * 关联查勘ID（关联查勘表）
     */
    @TableField("survey_id")
    private String surveyId;

    /**
     * 关联保单编号（冗余字段）
     */
    @TableField("policy_id")
    private String policyId;

    /**
     * 关联投保人ID（冗余字段）
     */
    @TableField("insured_id")
    private String insuredId;

    /**
     * 立案时间
     */
    @TableField("registration_time")
    private LocalDateTime registrationTime;

    /**
     * 立案员ID（关联工作人员表）
     */
    @TableField("registrar_id")
    private String registrarId;

    /**
     * 农户自报预估损失（取自报案表）
     */
    @TableField("farmer_loss_estimate")
    private BigDecimal farmerLossEstimate;

    /**
     * 查勘员评估损失（查勘后商议给出）
     */
    @TableField("surveyor_loss_estimate")
    private BigDecimal surveyorLossEstimate;

    /**
     * 损失差异原因（当两者金额差异较大时说明）
     */
    @TableField("loss_diff_reason")
    private String lossDiffReason;

    /**
     * 损失类型（如：部分损失、全部损失、死亡损失）
     */
    @TableField("loss_type")
    private String lossType;

    /**
     * 损失范围（如：5亩玉米倒伏、3头母猪死亡）
     */
    @TableField("loss_scope")
    private String lossScope;

    /**
     * 是否属于保险责任（1-是，0-否）
     */
    @TableField("is_covered")
    private Integer isCovered;

    /**
     * 责任认定依据（如：符合保单条款第3条第1款）
     */
    @TableField("coverage_basis")
    private String coverageBasis;

    /**
     * 立案状态（1-已立案，2-已撤销）
     */
    @TableField("registration_status")
    private Integer registrationStatus;

    /**
     * 撤销原因（仅当registration_status=2时填写）
     */
    @TableField("cancel_reason")
    private String cancelReason;


}
